package com.share.service;

import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

@Service
public class WebSocketService {

    private final SimpMessagingTemplate messagingTemplate;

    public WebSocketService(SimpMessagingTemplate messagingTemplate) {
        this.messagingTemplate = messagingTemplate;
    }

    // 向所有订阅 "/topic/greetings" 的客户端发送消息
    public void sendMessageToClients(String message) {
        messagingTemplate.convertAndSend("/topic/greetings", message);
    }
    // 向特定用户发送消息（推荐）
    public void sendMessageToUser(String userId, Object message) {
        messagingTemplate.convertAndSendToUser(
                userId,
                "/queue/private",  // 目标地址（客户端订阅的路径）
                message,
                createHeaders(userId) // 可选：添加消息头
        );
    }
    // 可选：创建消息头
    private MessageHeaders createHeaders(String sessionId) {
        Map<String, Object> headers = new HashMap<>();
        headers.put("simpSessionId", sessionId);
        return new MessageHeaders(headers);
    }
}